<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Win32k: ssend.c 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Win32k
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00869.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">宏定义</a> &#124;
<a href="#func-members">函数</a>  </div>
  <div class="headertitle">
<div class="title">ssend.c 文件参考</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="a03629_source.html">precomp.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00332_source.html">callback.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00353_source.html">ntcb.h</a>&quot;</code><br />
</div>
<p><a href="a00869_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
宏定义</h2></td></tr>
<tr class="memitem:a857a33d533ff2d47b765a75161469ca5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a857a33d533ff2d47b765a75161469ca5">CALLBACKPROC</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a857a33d533ff2d47b765a75161469ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dc28fcc3c5ceefa3bc65e9fe93d6ff4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a9dc28fcc3c5ceefa3bc65e9fe93d6ff4">SERVERSIDE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a9dc28fcc3c5ceefa3bc65e9fe93d6ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8fd1253f68f2049306ac750eb0abf11"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ab8fd1253f68f2049306ac750eb0abf11">SENDSIDE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ab8fd1253f68f2049306ac750eb0abf11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98518084fc701cec4d02387c3becb7c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a98518084fc701cec4d02387c3becb7c0">CBBUFSIZE</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:a98518084fc701cec4d02387c3becb7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a026af32460617f19e38afbf9524b8b5f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a026af32460617f19e38afbf9524b8b5f">SMESSAGECALL</a>(api)</td></tr>
<tr class="separator:a026af32460617f19e38afbf9524b8b5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65618ca54b98a196d6245772a3a34a69"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a65618ca54b98a196d6245772a3a34a69">SETUP</a>(api)</td></tr>
<tr class="separator:a65618ca54b98a196d6245772a3a34a69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16efcb4a62d9ae74251aa604c94fe624"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a16efcb4a62d9ae74251aa604c94fe624">SETUPPWND</a>(api)</td></tr>
<tr class="separator:a16efcb4a62d9ae74251aa604c94fe624"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc8974722cd1a681901163db8667e4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a6bc8974722cd1a681901163db8667e4f">CALC_SIZE_IN</a>(cb,  pstr)</td></tr>
<tr class="separator:a6bc8974722cd1a681901163db8667e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a576e65b2af0542a153ddcd59f3095bb6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a576e65b2af0542a153ddcd59f3095bb6">CALC_SIZE_OUT</a>(cb,  pstr)</td></tr>
<tr class="separator:a576e65b2af0542a153ddcd59f3095bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c107849e892b09dddd2a294d9909a99"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a0c107849e892b09dddd2a294d9909a99">BEGINSEND</a>(api)</td></tr>
<tr class="separator:a0c107849e892b09dddd2a294d9909a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89a860ad532c6d41de923e44b84512fb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a89a860ad532c6d41de923e44b84512fb">BEGINSENDCAPTURE</a>(api,  cCapturePointers,  cCaptureBytes,  fInput)</td></tr>
<tr class="separator:a89a860ad532c6d41de923e44b84512fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a317330f57d869ee5e1d1c88670187d0d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a317330f57d869ee5e1d1c88670187d0d">BEGINLARGESENDCAPTURE</a>(api,  cCapturePointers,  cCaptureBytes)</td></tr>
<tr class="separator:a317330f57d869ee5e1d1c88670187d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43045ae45011d89ec23ecaeec3c534e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a43045ae45011d89ec23ecaeec3c534e2">LOCKPWND</a>()</td></tr>
<tr class="separator:a43045ae45011d89ec23ecaeec3c534e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41e3075238bb3e94e68e24a2bacb806f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a41e3075238bb3e94e68e24a2bacb806f">UNLOCKPWND</a>()</td></tr>
<tr class="separator:a41e3075238bb3e94e68e24a2bacb806f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab05f1745e405752976f0ab63063b8026"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ab05f1745e405752976f0ab63063b8026">MAKECALL</a>(api)</td></tr>
<tr class="separator:ab05f1745e405752976f0ab63063b8026"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a777101bebba124dd8c8b1ced3afa49e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a777101bebba124dd8c8b1ced3afa49e5">MAKECALLCAPTURE</a>(api)</td></tr>
<tr class="separator:a777101bebba124dd8c8b1ced3afa49e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d3585d90b0c04c51d34501ce4f43d29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a9d3585d90b0c04c51d34501ce4f43d29">CHECKRETURN</a>()</td></tr>
<tr class="separator:a9d3585d90b0c04c51d34501ce4f43d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2e000a7670b70c3cc863c2cd7a1463b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ae2e000a7670b70c3cc863c2cd7a1463b">ENDSEND</a>(<a class="el" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>,  error)</td></tr>
<tr class="separator:ae2e000a7670b70c3cc863c2cd7a1463b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7d15cd53292f3c3ab0fac3a5fcaea66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#af7d15cd53292f3c3ab0fac3a5fcaea66">ENDSENDCAPTURE</a>(<a class="el" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>,  error)</td></tr>
<tr class="separator:af7d15cd53292f3c3ab0fac3a5fcaea66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae416011c092b4709913ee0cccaa42e0b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ae416011c092b4709913ee0cccaa42e0b">ENDSENDVOID</a>()</td></tr>
<tr class="separator:ae416011c092b4709913ee0cccaa42e0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a425e5d40f330cc882cc1c61a46f7fde9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a425e5d40f330cc882cc1c61a46f7fde9">MSGERROR</a>()&#160;&#160;&#160;goto errorexit</td></tr>
<tr class="separator:a425e5d40f330cc882cc1c61a46f7fde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeee0871f514f08f450cad7efbcd9f387"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#aeee0871f514f08f450cad7efbcd9f387">MSGERRORCODE</a>(code)</td></tr>
<tr class="separator:aeee0871f514f08f450cad7efbcd9f387"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2782e3781f60fd5774b2a2f9ca830aef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a2782e3781f60fd5774b2a2f9ca830aef">MSGNTERRORCODE</a>(code)</td></tr>
<tr class="separator:a2782e3781f60fd5774b2a2f9ca830aef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c94257f0a9cde9586154b50ba7d3cff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a5c94257f0a9cde9586154b50ba7d3cff">MSGDATA</a>()&#160;&#160;&#160;(mp)</td></tr>
<tr class="separator:a5c94257f0a9cde9586154b50ba7d3cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae0d23f6687fe8e75572f81ab5f6a459"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#aae0d23f6687fe8e75572f81ab5f6a459">COPYSTRUCTOPT</a>(x)</td></tr>
<tr class="separator:aae0d23f6687fe8e75572f81ab5f6a459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dfaa0814409ddb74652eaec0f9b6f70"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a9dfaa0814409ddb74652eaec0f9b6f70">COPYCONSTRECTSTRUCTOPT</a>(x)</td></tr>
<tr class="separator:a9dfaa0814409ddb74652eaec0f9b6f70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac34e066e97e9ab4e1687dda08df11ace"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ac34e066e97e9ab4e1687dda08df11ace">COPYBYTES</a>(p,  cb)</td></tr>
<tr class="separator:ac34e066e97e9ab4e1687dda08df11ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36c10903c71681ff03825d39905285a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a36c10903c71681ff03825d39905285a7">COPYBYTESOPT</a>(p,  cb)</td></tr>
<tr class="separator:a36c10903c71681ff03825d39905285a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00005424ae29a7111144d18144d27967"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a00005424ae29a7111144d18144d27967">LARGECOPYBYTES</a>(p,  cb)</td></tr>
<tr class="separator:a00005424ae29a7111144d18144d27967"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85adc6b78b4cc78ce5a3210fd58a2cf6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a85adc6b78b4cc78ce5a3210fd58a2cf6">LARGECOPYBYTES2</a>(src,  cb,  dest)</td></tr>
<tr class="separator:a85adc6b78b4cc78ce5a3210fd58a2cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc5b587949ac6582e82fffe06a7f886"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a2cc5b587949ac6582e82fffe06a7f886">COPYSTRING</a>(s)</td></tr>
<tr class="separator:a2cc5b587949ac6582e82fffe06a7f886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bf587bb4a9ca7270803d198b16459c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a5bf587bb4a9ca7270803d198b16459c6">COPYSTRINGOPT</a>(s)</td></tr>
<tr class="separator:a5bf587bb4a9ca7270803d198b16459c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66923400b9092123a196e26550bb8559"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a66923400b9092123a196e26550bb8559">COPYSTRINGID</a>(s)</td></tr>
<tr class="separator:a66923400b9092123a196e26550bb8559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5a794d0e85d3a31c9cc3ad19b82d4e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a7b5a794d0e85d3a31c9cc3ad19b82d4e">COPYLPWSTR2</a>(src,  dest)</td></tr>
<tr class="separator:a7b5a794d0e85d3a31c9cc3ad19b82d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4a851d4dad2b99abb6539cef1504f29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ae4a851d4dad2b99abb6539cef1504f29">COPYLPWSTR2A</a>(src,  dest)</td></tr>
<tr class="separator:ae4a851d4dad2b99abb6539cef1504f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc3a1ed04774b6d43fe7c25a2679345e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#adc3a1ed04774b6d43fe7c25a2679345e">COPYLPWSTROPT2A</a>(src,  dest)</td></tr>
<tr class="separator:adc3a1ed04774b6d43fe7c25a2679345e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafff10b9da308ccc502592913af023be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#aafff10b9da308ccc502592913af023be">LARGECOPYLPWSTR</a>(src)</td></tr>
<tr class="separator:aafff10b9da308ccc502592913af023be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07d7e6c5ec7ed5c59659443e90d8360a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a07d7e6c5ec7ed5c59659443e90d8360a">LARGECOPYLPWSTRA</a>(src)</td></tr>
<tr class="separator:a07d7e6c5ec7ed5c59659443e90d8360a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55a6317fcaf9d584ac4e67e70f0b9466"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a55a6317fcaf9d584ac4e67e70f0b9466">LARGECOPYLPWSTROPT</a>(src)</td></tr>
<tr class="separator:a55a6317fcaf9d584ac4e67e70f0b9466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa313942e58972a652d0a60e1a015f96f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#aa313942e58972a652d0a60e1a015f96f">LARGECOPYLPWSTROPTA</a>(src)</td></tr>
<tr class="separator:aa313942e58972a652d0a60e1a015f96f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7852d4111ab1be2a2c7994138526dbe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ae7852d4111ab1be2a2c7994138526dbe">LARGECOPYLPWSTRORDINALOPT2</a>(src,  dest)</td></tr>
<tr class="separator:ae7852d4111ab1be2a2c7994138526dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68854c603d78144206ce5074a4560c7e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a68854c603d78144206ce5074a4560c7e">LARGECOPYLPWSTRORDINALOPT2A</a>(src,  dest)</td></tr>
<tr class="separator:a68854c603d78144206ce5074a4560c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6584dddd7a03c5ade689ce0890ce1f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#af6584dddd7a03c5ade689ce0890ce1f4">LARGECOPYSTRINGLPWSTR</a>(ps,  psz)</td></tr>
<tr class="separator:af6584dddd7a03c5ade689ce0890ce1f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41d4d25f28dc10bc5814b679b1be259d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a41d4d25f28dc10bc5814b679b1be259d">LARGECOPYSTRINGLPSTR</a>(ps,  psz)</td></tr>
<tr class="separator:a41d4d25f28dc10bc5814b679b1be259d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a8fd3268f0576d14526b96790b9deac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a1a8fd3268f0576d14526b96790b9deac">LARGECOPYSTRINGLPWSTRA</a>(ps,  psz)</td></tr>
<tr class="separator:a1a8fd3268f0576d14526b96790b9deac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e3b7fd193095a71c7b9e15eb6336290"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a5e3b7fd193095a71c7b9e15eb6336290">LARGECOPYSTRINGLPSTRW</a>(ps,  psz)</td></tr>
<tr class="separator:a5e3b7fd193095a71c7b9e15eb6336290"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62da061151f58df290aa9c4c58a429af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a62da061151f58df290aa9c4c58a429af">LARGECOPYSTRINGLPWSTROPT</a>(ps,  psz)</td></tr>
<tr class="separator:a62da061151f58df290aa9c4c58a429af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc386008dfbbe7c9119fd1759dfe8cb0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#afc386008dfbbe7c9119fd1759dfe8cb0">LARGECOPYSTRINGLPSTROPT</a>(ps,  psz)</td></tr>
<tr class="separator:afc386008dfbbe7c9119fd1759dfe8cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc8759a19856b5e3c029ae4ff212fe21"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#adc8759a19856b5e3c029ae4ff212fe21">LARGECOPYSTRINGLPWSTROPTA</a>(ps,  psz)</td></tr>
<tr class="separator:adc8759a19856b5e3c029ae4ff212fe21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d5328bf6cf6730c35641c312b520c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a16d5328bf6cf6730c35641c312b520c2">OUTSTRUCT</a>(pstruct,  <a class="el" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>)</td></tr>
<tr class="separator:a16d5328bf6cf6730c35641c312b520c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd8bf370fca7692e7cf4e0e9350d451"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a2bd8bf370fca7692e7cf4e0e9350d451">OUTSTRING</a>(pstrOut)</td></tr>
<tr class="separator:a2bd8bf370fca7692e7cf4e0e9350d451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5111809f901d57d1094ae1cbbb40b425"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a5111809f901d57d1094ae1cbbb40b425">OUTSTRING_A</a>(pstrOut)</td></tr>
<tr class="separator:a5111809f901d57d1094ae1cbbb40b425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a85c7beb2ab2a3832bb22143722b107"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a9a85c7beb2ab2a3832bb22143722b107">COPYOUTLPWSTRLIMIT</a>(pstr,  cch)</td></tr>
<tr class="separator:a9a85c7beb2ab2a3832bb22143722b107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea6b2eb4abaf36fb7c52f67360d466ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#aea6b2eb4abaf36fb7c52f67360d466ff">RESERVEBYTES</a>(cb,  dest,  cbdest)</td></tr>
<tr class="separator:aea6b2eb4abaf36fb7c52f67360d466ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a9702d294ae881a04923514d07d5ef5b9"><td class="memItemLeft" align="right" valign="top">PVOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a9702d294ae881a04923514d07d5ef5b9">AllocCallbackMessage</a> (<a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cbBaseMsg, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cPointers, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cbCapture, PBYTE pStackBuffer, BOOL fInput)</td></tr>
<tr class="separator:a9702d294ae881a04923514d07d5ef5b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15009c94d59d372f9f16e9066228bc6a"><td class="memItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a> (<a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a> pcb, PVOID pData, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cbData, PVOID *ppDest)</td></tr>
<tr class="separator:a15009c94d59d372f9f16e9066228bc6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d336b3234d57f09c732f44a6c766921"><td class="memItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a9d336b3234d57f09c732f44a6c766921">AllocateCallbackData</a> (<a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a> pcb, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cbData, PVOID *ppDest)</td></tr>
<tr class="separator:a9d336b3234d57f09c732f44a6c766921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48819a7c4f5e6050e80faf68578daa41"><td class="memItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a> (<a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a> pcb, PVOID pData, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cbData, PVOID *ppDest)</td></tr>
<tr class="separator:a48819a7c4f5e6050e80faf68578daa41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7085763276b441eda8b04b281cc83ba"><td class="memItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#ac7085763276b441eda8b04b281cc83ba">CaptureUnicodeCallbackData</a> (<a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a> pcb, PVOID pData, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> cbData, PVOID *ppDest)</td></tr>
<tr class="separator:ac7085763276b441eda8b04b281cc83ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a703c1d4772718591f4c2aff75ebcf132"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00869.html#a703c1d4772718591f4c2aff75ebcf132">CopyOutputString</a> (<a class="el" href="a00365.html#a91976adce1338d5f43dcda39e283259d">PCALLBACKSTATUS</a> <a class="el" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>, <a class="el" href="a00365.html#aa453bfba298bc156c84c4a04a89b4436">PLARGE_STRING</a> pstr, <a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a> cchLimit, BOOL fAnsi)</td></tr>
<tr class="separator:a703c1d4772718591f4c2aff75ebcf132"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">宏定义说明</h2>
<a id="a317330f57d869ee5e1d1c88670187d0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a317330f57d869ee5e1d1c88670187d0d">&#9670;&nbsp;</a></span>BEGINLARGESENDCAPTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGINLARGESENDCAPTURE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cCapturePointers, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cCaptureBytes&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (cCapturePointers) {                             \</div>
<div class="line">        mp = <a class="code" href="a00869.html#a9702d294ae881a04923514d07d5ef5b9">AllocCallbackMessage</a>(<span class="keyword">sizeof</span>(m),            \</div>
<div class="line">                (cCapturePointers),                     \</div>
<div class="line">                (cCaptureBytes),                        \</div>
<div class="line">                Buffer);                                \</div>
<div class="line">        if (mp == NULL)                                 \</div>
<div class="line">            goto errorexitnofreemp;                     \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                            \</div>
<div class="line">        m.CaptureBuf.cbCallback = <span class="keyword">sizeof</span>(m);            \</div>
<div class="line">        m.CaptureBuf.cbCapture = 0;                     \</div>
<div class="line">        m.CaptureBuf.cCapturedPointers = 0;             \</div>
<div class="line">        mp = &amp;m;                                        \</div>
<div class="line">    }                                                   \</div>
<div class="line">    {                                                   \</div>
<div class="line">        PTHREADINFO ptiCurrent = <a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>();          \</div>
<div class="line">        TL tlPool;                                      \</div>
<div class="line">                                                        \</div>
<div class="line">        if (mp != &amp;m &amp;&amp; (PVOID)mp != (PVOID)Buffer)     \</div>
<div class="line">            ThreadLockPool(ptiCurrent, mp, &amp;tlPool);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00106">106</a> 行定义.</p>

</div>
</div>
<a id="a0c107849e892b09dddd2a294d9909a99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c107849e892b09dddd2a294d9909a99">&#9670;&nbsp;</a></span>BEGINSEND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGINSEND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    mp = &amp;m; \</div>
<div class="line">    Buffer;  \</div>
<div class="line">    {</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00079">79</a> 行定义.</p>

</div>
</div>
<a id="a89a860ad532c6d41de923e44b84512fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89a860ad532c6d41de923e44b84512fb">&#9670;&nbsp;</a></span>BEGINSENDCAPTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BEGINSENDCAPTURE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cCapturePointers, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cCaptureBytes, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">fInput&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (cCapturePointers) {                             \</div>
<div class="line">        mp = <a class="code" href="a00869.html#a9702d294ae881a04923514d07d5ef5b9">AllocCallbackMessage</a>(<span class="keyword">sizeof</span>(m),            \</div>
<div class="line">                (cCapturePointers),                     \</div>
<div class="line">                (cCaptureBytes),                        \</div>
<div class="line">                Buffer,                                 \</div>
<div class="line">                fInput);                                \</div>
<div class="line">        if (mp == NULL)                                 \</div>
<div class="line">            goto errorexitnofreemp;                     \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                            \</div>
<div class="line">        m.CaptureBuf.cbCallback = <span class="keyword">sizeof</span>(m);            \</div>
<div class="line">        m.CaptureBuf.cbCapture = 0;                     \</div>
<div class="line">        m.CaptureBuf.cCapturedPointers = 0;             \</div>
<div class="line">        mp = &amp;m;                                        \</div>
<div class="line">    }                                                   \</div>
<div class="line">    {                                                   \</div>
<div class="line">        PTHREADINFO ptiCurrent = <a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>();          \</div>
<div class="line">        TL tlPool;                                      \</div>
<div class="line">                                                        \</div>
<div class="line">        if (mp != &amp;m &amp;&amp; (PVOID)mp != (PVOID)Buffer)     \</div>
<div class="line">            ThreadLockPool(ptiCurrent, mp, &amp;tlPool);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00084">84</a> 行定义.</p>

</div>
</div>
<a id="a6bc8974722cd1a681901163db8667e4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bc8974722cd1a681901163db8667e4f">&#9670;&nbsp;</a></span>CALC_SIZE_IN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CALC_SIZE_IN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pstr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    cb = (pstr)-&gt;Length + <span class="keyword">sizeof</span>(WCHAR);  \</div>
<div class="line">    if ((pstr)-&gt;bAnsi &amp;&amp; !fAnsiReceiver)  \</div>
<div class="line">        cb *= <span class="keyword">sizeof</span>(WCHAR);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00059">59</a> 行定义.</p>

</div>
</div>
<a id="a576e65b2af0542a153ddcd59f3095bb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a576e65b2af0542a153ddcd59f3095bb6">&#9670;&nbsp;</a></span>CALC_SIZE_OUT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CALC_SIZE_OUT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pstr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    cb = (pstr)-&gt;MaximumLength + <span class="keyword">sizeof</span>(WCHAR); \</div>
<div class="line">    if ((pstr)-&gt;bAnsi &amp;&amp; !fAnsiReceiver)        \</div>
<div class="line">        cb *= <span class="keyword">sizeof</span>(WCHAR);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00064">64</a> 行定义.</p>

</div>
</div>
<a id="a857a33d533ff2d47b765a75161469ca5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a857a33d533ff2d47b765a75161469ca5">&#9670;&nbsp;</a></span>CALLBACKPROC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CALLBACKPROC&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00014">14</a> 行定义.</p>

</div>
</div>
<a id="a98518084fc701cec4d02387c3becb7c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98518084fc701cec4d02387c3becb7c0">&#9670;&nbsp;</a></span>CBBUFSIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CBBUFSIZE&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00021">21</a> 行定义.</p>

</div>
</div>
<a id="a9d3585d90b0c04c51d34501ce4f43d29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d3585d90b0c04c51d34501ce4f43d29">&#9670;&nbsp;</a></span>CHECKRETURN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CHECKRETURN</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(Status) ||                              \</div>
<div class="line">            cbCBStatus != <span class="keyword">sizeof</span>(*<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>)) {                  \</div>
<div class="line">        goto errorexit;                                     \</div>
<div class="line">    }                                                       \</div>
<div class="line">    try {                                                   \</div>
<div class="line">        ProbeForRead(<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>, <span class="keyword">sizeof</span>(*<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>), <span class="keyword">sizeof</span>(<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>));   \</div>
<div class="line">        retval = <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;retval;                              \</div>
<div class="line">    } except (EXCEPTION_EXECUTE_HANDLER) {                  \</div>
<div class="line">        MSGNTERRORCODE(GetExceptionCode());                 \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00157">157</a> 行定义.</p>

</div>
</div>
<a id="ac34e066e97e9ab4e1687dda08df11ace"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac34e066e97e9ab4e1687dda08df11ace">&#9670;&nbsp;</a></span>COPYBYTES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYBYTES</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">p, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, p, cb, &amp;mp-&gt;p))) \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00250">250</a> 行定义.</p>

</div>
</div>
<a id="a36c10903c71681ff03825d39905285a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36c10903c71681ff03825d39905285a7">&#9670;&nbsp;</a></span>COPYBYTESOPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYBYTESOPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">p, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (p) {                                                                    \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, p, cb, &amp;mp-&gt;p)))   \</div>
<div class="line">            goto errorexit;                                                     \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                    \</div>
<div class="line">        mp-&gt;p = NULL;                                                           \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00254">254</a> 行定义.</p>

</div>
</div>
<a id="a9dfaa0814409ddb74652eaec0f9b6f70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dfaa0814409ddb74652eaec0f9b6f70">&#9670;&nbsp;</a></span>COPYCONSTRECTSTRUCTOPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYCONSTRECTSTRUCTOPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">        <a class="code" href="a00869.html#a5c94257f0a9cde9586154b50ba7d3cff">MSGDATA</a>()-&gt;p ## x = (LPRECT)(p ## x); \</div>
<div class="line">        if (p ## x) <a class="code" href="a00869.html#a5c94257f0a9cde9586154b50ba7d3cff">MSGDATA</a>()-&gt;x = *(p ## x);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00246">246</a> 行定义.</p>

</div>
</div>
<a id="a7b5a794d0e85d3a31c9cc3ad19b82d4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b5a794d0e85d3a31c9cc3ad19b82d4e">&#9670;&nbsp;</a></span>COPYLPWSTR2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYLPWSTR2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,                \</div>
<div class="line">            (wcslen((LPWSTR)src) + 1) * <span class="keyword">sizeof</span>(WCHAR), (PVOID *)&amp;mp-&gt;dest)))        \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00306">306</a> 行定义.</p>

</div>
</div>
<a id="ae4a851d4dad2b99abb6539cef1504f29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4a851d4dad2b99abb6539cef1504f29">&#9670;&nbsp;</a></span>COPYLPWSTR2A</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYLPWSTR2A</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,            \</div>
<div class="line">            wcslen((LPWSTR)src) + 1, (PVOID *)&amp;mp-&gt;dest)))                          \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00311">311</a> 行定义.</p>

</div>
</div>
<a id="adc3a1ed04774b6d43fe7c25a2679345e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc3a1ed04774b6d43fe7c25a2679345e">&#9670;&nbsp;</a></span>COPYLPWSTROPT2A</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYLPWSTROPT2A</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (src) {                                                                      \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,        \</div>
<div class="line">                wcslen((LPWSTR)src) + 1, (PVOID *)&amp;mp-&gt;dest)))                      \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;dest = NULL;                                                            \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00316">316</a> 行定义.</p>

</div>
</div>
<a id="a9a85c7beb2ab2a3832bb22143722b107"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a85c7beb2ab2a3832bb22143722b107">&#9670;&nbsp;</a></span>COPYOUTLPWSTRLIMIT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYOUTLPWSTRLIMIT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pstr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cch&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">try</span> {                                                                   \</div>
<div class="line">        CopyOutputString(<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>, pstr, cch, fAnsiReceiver);                   \</div>
<div class="line">    } except (EXCEPTION_EXECUTE_HANDLER) {                                  \</div>
<div class="line">        MSGNTERRORCODE(GetExceptionCode());                                 \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00477">477</a> 行定义.</p>

</div>
</div>
<a id="a2cc5b587949ac6582e82fffe06a7f886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cc5b587949ac6582e82fffe06a7f886">&#9670;&nbsp;</a></span>COPYSTRING</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYSTRING</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    mp-&gt;s.Length = (p ## s)-&gt;Length;                                                \</div>
<div class="line">    mp-&gt;s.MaximumLength = (p ## s)-&gt;MaximumLength;                                  \</div>
<div class="line">    if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                            \</div>
<div class="line">                                        (p ## s)-&gt;Buffer,                           \</div>
<div class="line">                                        (p ## s)-&gt;Length + <span class="keyword">sizeof</span>(WCHAR),           \</div>
<div class="line">                                        &amp;mp-&gt;s.Buffer)))                            \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00270">270</a> 行定义.</p>

</div>
</div>
<a id="a66923400b9092123a196e26550bb8559"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66923400b9092123a196e26550bb8559">&#9670;&nbsp;</a></span>COPYSTRINGID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYSTRINGID</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    mp-&gt;s.Length = (p ## s)-&gt;Length;                                                \</div>
<div class="line">    mp-&gt;s.MaximumLength = (p ## s)-&gt;MaximumLength;                                  \</div>
<div class="line">    if (mp-&gt;s.MaximumLength) {                                                      \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                        \</div>
<div class="line">                                            (p ## s)-&gt;Buffer,                       \</div>
<div class="line">                                            (p ## s)-&gt;Length + <span class="keyword">sizeof</span>(WCHAR),       \</div>
<div class="line">                                            &amp;mp-&gt;s.Buffer)))                        \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;s.Buffer = (p ## s)-&gt;Buffer;                                            \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00293">293</a> 行定义.</p>

</div>
</div>
<a id="a5bf587bb4a9ca7270803d198b16459c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bf587bb4a9ca7270803d198b16459c6">&#9670;&nbsp;</a></span>COPYSTRINGOPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYSTRINGOPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (p ## s) {                                                                   \</div>
<div class="line">        mp-&gt;s.Length = (p ## s)-&gt;Length;                                            \</div>
<div class="line">        mp-&gt;s.MaximumLength = (p ## s)-&gt;MaximumLength;                              \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                        \</div>
<div class="line">                                            (p ## s)-&gt;Buffer,                       \</div>
<div class="line">                                            (p ## s)-&gt;Length + <span class="keyword">sizeof</span>(WCHAR),       \</div>
<div class="line">                                            &amp;mp-&gt;s.Buffer)))                        \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;s.Length = 0;                                                           \</div>
<div class="line">        mp-&gt;s.Buffer = NULL;                                                        \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00279">279</a> 行定义.</p>

</div>
</div>
<a id="aae0d23f6687fe8e75572f81ab5f6a459"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae0d23f6687fe8e75572f81ab5f6a459">&#9670;&nbsp;</a></span>COPYSTRUCTOPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COPYSTRUCTOPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">        <a class="code" href="a00869.html#a5c94257f0a9cde9586154b50ba7d3cff">MSGDATA</a>()-&gt;p ## x = (p ## x); \</div>
<div class="line">        if (p ## x) <a class="code" href="a00869.html#a5c94257f0a9cde9586154b50ba7d3cff">MSGDATA</a>()-&gt;x = *(p ## x);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00242">242</a> 行定义.</p>

</div>
</div>
<a id="ae2e000a7670b70c3cc863c2cd7a1463b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2e000a7670b70c3cc863c2cd7a1463b">&#9670;&nbsp;</a></span>ENDSEND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENDSEND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><a class="el" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">error&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">        <span class="keywordflow">return</span> (<a class="code" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>)retval;               \</div>
<div class="line">        goto errorexit;                    \</div>
<div class="line">    }                                      \</div>
<div class="line">errorexit:                                 \</div>
<div class="line">   return (<a class="code" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>)error</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00169">169</a> 行定义.</p>

</div>
</div>
<a id="af7d15cd53292f3c3ab0fac3a5fcaea66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7d15cd53292f3c3ab0fac3a5fcaea66">&#9670;&nbsp;</a></span>ENDSENDCAPTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENDSENDCAPTURE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><a class="el" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">error&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">exit:                                                           \</div>
<div class="line">        if (mp != &amp;m &amp;&amp; (PVOID)mp != (PVOID)Buffer) {           \</div>
<div class="line">            if (mp-&gt;CaptureBuf.pvVirtualAddress) {              \</div>
<div class="line">                NTSTATUS Status;                                \</div>
<div class="line">                ULONG ulRegionSize = 0;                         \</div>
<div class="line">                                                                \</div>
<div class="line">                Status = ZwFreeVirtualMemory(NtCurrentProcess(),\</div>
<div class="line">                        &amp;mp-&gt;CaptureBuf.pvVirtualAddress,       \</div>
<div class="line">                        &amp;ulRegionSize,                          \</div>
<div class="line">                        MEM_RELEASE);                           \</div>
<div class="line">                UserAssert(NT_SUCCESS(Status));                 \</div>
<div class="line">            }                                                   \</div>
<div class="line">            ThreadUnlockAndFreePool(ptiCurrent, &amp;tlPool);       \</div>
<div class="line">        }                                                       \</div>
<div class="line">        return (<a class="code" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>)retval;                                    \</div>
<div class="line">        goto errorexit;                                         \</div>
<div class="line">    }                                                           \</div>
<div class="line">errorexit:                                                      \</div>
<div class="line">   retval = error;                                              \</div>
<div class="line">   goto exit;                                                   \</div>
<div class="line">errorexitnofreemp:                                              \</div>
<div class="line">   return (<a class="code" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>)error</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00176">176</a> 行定义.</p>

</div>
</div>
<a id="ae416011c092b4709913ee0cccaa42e0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae416011c092b4709913ee0cccaa42e0b">&#9670;&nbsp;</a></span>ENDSENDVOID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENDSENDVOID</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    }                 \</div>
<div class="line">    return</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00200">200</a> 行定义.</p>

</div>
</div>
<a id="a00005424ae29a7111144d18144d27967"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00005424ae29a7111144d18144d27967">&#9670;&nbsp;</a></span>LARGECOPYBYTES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYBYTES</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">p, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, p, cb, &amp;mp-&gt;p))) \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00262">262</a> 行定义.</p>

</div>
</div>
<a id="a85adc6b78b4cc78ce5a3210fd58a2cf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85adc6b78b4cc78ce5a3210fd58a2cf6">&#9670;&nbsp;</a></span>LARGECOPYBYTES2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYBYTES2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, src, cb, &amp;mp-&gt;dest))) \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00266">266</a> 行定义.</p>

</div>
</div>
<a id="aafff10b9da308ccc502592913af023be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafff10b9da308ccc502592913af023be">&#9670;&nbsp;</a></span>LARGECOPYLPWSTR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYLPWSTR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,                \</div>
<div class="line">            (wcslen((LPWSTR)src) + 1) * <span class="keyword">sizeof</span>(WCHAR), &amp;mp-&gt;src)))                  \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00325">325</a> 行定义.</p>

</div>
</div>
<a id="a07d7e6c5ec7ed5c59659443e90d8360a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07d7e6c5ec7ed5c59659443e90d8360a">&#9670;&nbsp;</a></span>LARGECOPYLPWSTRA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYLPWSTRA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,            \</div>
<div class="line">            wcslen((LPWSTR)src) + 1, &amp;mp-&gt;src)))                                    \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00330">330</a> 行定义.</p>

</div>
</div>
<a id="a55a6317fcaf9d584ac4e67e70f0b9466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55a6317fcaf9d584ac4e67e70f0b9466">&#9670;&nbsp;</a></span>LARGECOPYLPWSTROPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYLPWSTROPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (src) {                                                                      \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,            \</div>
<div class="line">                (wcslen((LPWSTR)src) + 1) * <span class="keyword">sizeof</span>(WCHAR), (PVOID *)&amp;mp-&gt;src)))     \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;src = NULL;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00335">335</a> 行定义.</p>

</div>
</div>
<a id="aa313942e58972a652d0a60e1a015f96f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa313942e58972a652d0a60e1a015f96f">&#9670;&nbsp;</a></span>LARGECOPYLPWSTROPTA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYLPWSTROPTA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (src) {                                                                      \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,        \</div>
<div class="line">                wcslen((LPWSTR)src) + 1, &amp;mp-&gt;src)))                                \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;src = NULL;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00344">344</a> 行定义.</p>

</div>
</div>
<a id="ae7852d4111ab1be2a2c7994138526dbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7852d4111ab1be2a2c7994138526dbe">&#9670;&nbsp;</a></span>LARGECOPYLPWSTRORDINALOPT2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYLPWSTRORDINALOPT2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (src &amp;&amp;                                                                      \</div>
<div class="line">            *(LPWORD)src != 0xffff) {                                               \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,            \</div>
<div class="line">                (wcslen((LPWSTR)src) + 1) * <span class="keyword">sizeof</span>(WCHAR), (PVOID *)&amp;mp-&gt;dest)))    \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;dest = src;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00353">353</a> 行定义.</p>

</div>
</div>
<a id="a68854c603d78144206ce5074a4560c7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68854c603d78144206ce5074a4560c7e">&#9670;&nbsp;</a></span>LARGECOPYLPWSTRORDINALOPT2A</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYLPWSTRORDINALOPT2A</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (src &amp;&amp;                                                                      \</div>
<div class="line">            *(LPWORD)src != 0xffff) {                                               \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf, (PBYTE)src,        \</div>
<div class="line">                wcslen((LPWSTR)src) + 1, (PVOID *)&amp;mp-&gt;dest)))                      \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;dest = src;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00363">363</a> 行定义.</p>

</div>
</div>
<a id="a41d4d25f28dc10bc5814b679b1be259d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41d4d25f28dc10bc5814b679b1be259d">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPSTR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPSTR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                            \</div>
<div class="line">                                        (ps)-&gt;Buffer,                               \</div>
<div class="line">                                        (ps)-&gt;Length + 1,                           \</div>
<div class="line">                                        (PVOID *)&amp;mp-&gt;psz)))                        \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00380">380</a> 行定义.</p>

</div>
</div>
<a id="afc386008dfbbe7c9119fd1759dfe8cb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc386008dfbbe7c9119fd1759dfe8cb0">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPSTROPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPSTROPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (ps) {                                                                       \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                        \</div>
<div class="line">                                            (ps)-&gt;Buffer,                           \</div>
<div class="line">                                            (ps)-&gt;Length + <span class="keyword">sizeof</span>(UCHAR),           \</div>
<div class="line">                                            (PVOID *)&amp;mp-&gt;psz)))                    \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;psz = NULL;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00412">412</a> 行定义.</p>

</div>
</div>
<a id="a5e3b7fd193095a71c7b9e15eb6336290"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e3b7fd193095a71c7b9e15eb6336290">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPSTRW</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPSTRW</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#ac7085763276b441eda8b04b281cc83ba">CaptureUnicodeCallbackData</a>(&amp;mp-&gt;CaptureBuf,                     \</div>
<div class="line">                                        (ps)-&gt;Buffer,                               \</div>
<div class="line">                                        ((ps)-&gt;Length + 1) * <span class="keyword">sizeof</span>(WCHAR),         \</div>
<div class="line">                                        (PVOID *)&amp;mp-&gt;psz)))                        \</div>
<div class="line">        goto errorexit;                                                             \</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00394">394</a> 行定义.</p>

</div>
</div>
<a id="af6584dddd7a03c5ade689ce0890ce1f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6584dddd7a03c5ade689ce0890ce1f4">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPWSTR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPWSTR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                            \</div>
<div class="line">                                        (ps)-&gt;Buffer,                               \</div>
<div class="line">                                        (ps)-&gt;Length + <span class="keyword">sizeof</span>(WCHAR),               \</div>
<div class="line">                                        (PVOID *)&amp;mp-&gt;psz)))                        \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00373">373</a> 行定义.</p>

</div>
</div>
<a id="a1a8fd3268f0576d14526b96790b9deac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a8fd3268f0576d14526b96790b9deac">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPWSTRA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPWSTRA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf,                        \</div>
<div class="line">                                        (ps)-&gt;Buffer,                               \</div>
<div class="line">                                        ((ps)-&gt;Length / <span class="keyword">sizeof</span>(WCHAR)) + 1,         \</div>
<div class="line">                                        (PVOID *)&amp;mp-&gt;psz)))                        \</div>
<div class="line">        goto errorexit;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00387">387</a> 行定义.</p>

</div>
</div>
<a id="a62da061151f58df290aa9c4c58a429af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62da061151f58df290aa9c4c58a429af">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPWSTROPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPWSTROPT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (ps) {                                                                       \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a>(&amp;mp-&gt;CaptureBuf,                        \</div>
<div class="line">                                            (ps)-&gt;Buffer,                           \</div>
<div class="line">                                            (ps)-&gt;Length + <span class="keyword">sizeof</span>(WCHAR),           \</div>
<div class="line">                                            (PVOID *)&amp;mp-&gt;psz)))                    \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;psz = NULL;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00401">401</a> 行定义.</p>

</div>
</div>
<a id="adc8759a19856b5e3c029ae4ff212fe21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc8759a19856b5e3c029ae4ff212fe21">&#9670;&nbsp;</a></span>LARGECOPYSTRINGLPWSTROPTA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LARGECOPYSTRINGLPWSTROPTA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ps, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">psz&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (ps) {                                                                       \</div>
<div class="line">        if (!NT_SUCCESS(<a class="code" href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a>(&amp;mp-&gt;CaptureBuf,                    \</div>
<div class="line">                                            (ps)-&gt;Buffer,                           \</div>
<div class="line">                                            ((ps)-&gt;Length / <span class="keyword">sizeof</span>(WCHAR)) + 1,     \</div>
<div class="line">                                            (PVOID *)&amp;mp-&gt;psz)))                    \</div>
<div class="line">            goto errorexit;                                                         \</div>
<div class="line">    } <span class="keywordflow">else</span> {                                                                        \</div>
<div class="line">        mp-&gt;psz = NULL;                                                             \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00423">423</a> 行定义.</p>

</div>
</div>
<a id="a43045ae45011d89ec23ecaeec3c534e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43045ae45011d89ec23ecaeec3c534e2">&#9670;&nbsp;</a></span>LOCKPWND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOCKPWND</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <a class="code" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a>(pwnd, &amp;tlpwnd);          \</div>
<div class="line">    cbwin = pci-&gt;CallbackWnd;           \</div>
<div class="line">    pci-&gt;CallbackWnd.pwnd = pwndClient; \</div>
<div class="line">    pci-&gt;CallbackWnd.hwnd = HW(pwnd);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00127">127</a> 行定义.</p>

</div>
</div>
<a id="ab05f1745e405752976f0ab63063b8026"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab05f1745e405752976f0ab63063b8026">&#9670;&nbsp;</a></span>MAKECALL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAKECALL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();                                            \</div>
<div class="line">    Status = KeUserModeCallback(                            \</div>
<div class="line">        FI_ ## api,                                         \</div>
<div class="line">        mp,                                                 \</div>
<div class="line">        <span class="keyword">sizeof</span>(*mp),                                        \</div>
<div class="line">        &amp;<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>,                                              \</div>
<div class="line">        &amp;cbCBStatus);                                       \</div>
<div class="line">    EnterCrit();</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00137">137</a> 行定义.</p>

</div>
</div>
<a id="a777101bebba124dd8c8b1ced3afa49e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a777101bebba124dd8c8b1ced3afa49e5">&#9670;&nbsp;</a></span>MAKECALLCAPTURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAKECALLCAPTURE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();                                            \</div>
<div class="line">    Status = (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)KeUserModeCallback(                     \</div>
<div class="line">        FI_ ## api,                                         \</div>
<div class="line">        mp,                                                 \</div>
<div class="line">        mp-&gt;CaptureBuf.cbCallback,                          \</div>
<div class="line">        &amp;<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>,                                              \</div>
<div class="line">        &amp;cbCBStatus);                                       \</div>
<div class="line">    EnterCrit();</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00147">147</a> 行定义.</p>

</div>
</div>
<a id="a5c94257f0a9cde9586154b50ba7d3cff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c94257f0a9cde9586154b50ba7d3cff">&#9670;&nbsp;</a></span>MSGDATA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSGDATA</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;(mp)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00240">240</a> 行定义.</p>

</div>
</div>
<a id="a425e5d40f330cc882cc1c61a46f7fde9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a425e5d40f330cc882cc1c61a46f7fde9">&#9670;&nbsp;</a></span>MSGERROR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSGERROR</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;goto errorexit</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00204">204</a> 行定义.</p>

</div>
</div>
<a id="aeee0871f514f08f450cad7efbcd9f387"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeee0871f514f08f450cad7efbcd9f387">&#9670;&nbsp;</a></span>MSGERRORCODE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSGERRORCODE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">code</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    { \</div>
<div class="line">    RIPMSG1(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Exception %x&quot;</span>, code);   \</div>
<div class="line">    goto errorexit; }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00206">206</a> 行定义.</p>

</div>
</div>
<a id="a2782e3781f60fd5774b2a2f9ca830aef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2782e3781f60fd5774b2a2f9ca830aef">&#9670;&nbsp;</a></span>MSGNTERRORCODE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSGNTERRORCODE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">code</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    { \</div>
<div class="line">    RIPMSG1(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Exception %x&quot;</span>, code);   \</div>
<div class="line">    goto errorexit; }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00210">210</a> 行定义.</p>

</div>
</div>
<a id="a2bd8bf370fca7692e7cf4e0e9350d451"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bd8bf370fca7692e7cf4e0e9350d451">&#9670;&nbsp;</a></span>OUTSTRING</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OUTSTRING</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pstrOut</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">try</span> {                                                                   \</div>
<div class="line">        LARGE_UNICODE_STRING strSrc;                                        \</div>
<div class="line">                                                                            \</div>
<div class="line">        ProbeForRead(<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;cbOutput, <span class="keyword">sizeof</span>(<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>));         \</div>
<div class="line">        strSrc = *(<a class="code" href="a00365.html#a426c6d3b3fa0c69f73b55f476602e672">PLARGE_UNICODE_STRING</a>)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput;                     \</div>
<div class="line">        pstrOut-&gt;Length = wcslen(strSrc.Buffer) * <span class="keyword">sizeof</span>(WCHAR);            \</div>
<div class="line">        RtlCopyMemory(pstrOut-&gt;Buffer, strSrc.Buffer,                       \</div>
<div class="line">                pstrOut-&gt;Length + <span class="keyword">sizeof</span>(WCHAR));                           \</div>
<div class="line">    } except (EXCEPTION_EXECUTE_HANDLER) {                                  \</div>
<div class="line">        MSGNTERRORCODE(GetExceptionCode());                                 \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00446">446</a> 行定义.</p>

</div>
</div>
<a id="a5111809f901d57d1094ae1cbbb40b425"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5111809f901d57d1094ae1cbbb40b425">&#9670;&nbsp;</a></span>OUTSTRING_A</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OUTSTRING_A</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pstrOut</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">try</span> {                                                                   \</div>
<div class="line">        LARGE_ANSI_STRING strSrc;                                           \</div>
<div class="line">        int cchA, cchW;                                                     \</div>
<div class="line">                                                                            \</div>
<div class="line">        ProbeForRead(<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;cbOutput, <span class="keyword">sizeof</span>(<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>));         \</div>
<div class="line">        strSrc = *(<a class="code" href="a00365.html#a30bfbeae5aa9511b0d3e797511eba5a9">PLARGE_ANSI_STRING</a>)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput;                        \</div>
<div class="line">        cchA = strlen(strSrc.Buffer);                                       \</div>
<div class="line">        pstrOut-&gt;Length = cchA * <span class="keyword">sizeof</span>(WCHAR);                             \</div>
<div class="line">        cchW = MBToWCS(strSrc.Buffer, cchA,                                 \</div>
<div class="line">                &amp;pstrOut-&gt;Buffer,                                           \</div>
<div class="line">                pstrOut-&gt;MaximumLength / <span class="keyword">sizeof</span>(WCHAR) - 1, FALSE);         \</div>
<div class="line">        pstrOut-&gt;Buffer[cchW] = 0;                                          \</div>
<div class="line">    } except (EXCEPTION_EXECUTE_HANDLER) {                                  \</div>
<div class="line">        MSGNTERRORCODE(GetExceptionCode());                                 \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00460">460</a> 行定义.</p>

</div>
</div>
<a id="a16d5328bf6cf6730c35641c312b520c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16d5328bf6cf6730c35641c312b520c2">&#9670;&nbsp;</a></span>OUTSTRUCT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OUTSTRUCT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pstruct, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><a class="el" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">try</span> {                                                                   \</div>
<div class="line">        ProbeForRead(<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;cbOutput, <span class="keyword">sizeof</span>(<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>));         \</div>
<div class="line">        *(pstruct) = *(<a class="code" href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a> *)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput;                                \</div>
<div class="line">    } except (EXCEPTION_EXECUTE_HANDLER) {                                  \</div>
<div class="line">        MSGNTERRORCODE(GetExceptionCode());                                 \</div>
<div class="line">    }</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00437">437</a> 行定义.</p>

</div>
</div>
<a id="aea6b2eb4abaf36fb7c52f67360d466ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea6b2eb4abaf36fb7c52f67360d466ff">&#9670;&nbsp;</a></span>RESERVEBYTES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RESERVEBYTES</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cbdest&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    <span class="keywordflow">if</span> (!NT_SUCCESS(<a class="code" href="a00869.html#a9d336b3234d57f09c732f44a6c766921">AllocateCallbackData</a>(&amp;mp-&gt;CaptureBuf,   \</div>
<div class="line">            cb, (PVOID *)&amp;mp-&gt;dest)))                       \</div>
<div class="line">        goto errorexit;                                     \</div>
<div class="line">    mp-&gt;cbdest = cb;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00484">484</a> 行定义.</p>

</div>
</div>
<a id="ab8fd1253f68f2049306ac750eb0abf11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8fd1253f68f2049306ac750eb0abf11">&#9670;&nbsp;</a></span>SENDSIDE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SENDSIDE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00019">19</a> 行定义.</p>

</div>
</div>
<a id="a9dc28fcc3c5ceefa3bc65e9fe93d6ff4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dc28fcc3c5ceefa3bc65e9fe93d6ff4">&#9670;&nbsp;</a></span>SERVERSIDE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SERVERSIDE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00015">15</a> 行定义.</p>

</div>
</div>
<a id="a65618ca54b98a196d6245772a3a34a69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65618ca54b98a196d6245772a3a34a69">&#9670;&nbsp;</a></span>SETUP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SETUP</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    api ## MSG m;                                           \</div>
<div class="line">    api ## MSG *mp = &amp;m;                                    \</div>
<div class="line">    BYTE Buffer[<a class="code" href="a00869.html#a98518084fc701cec4d02387c3becb7c0">CBBUFSIZE</a>];                                 \</div>
<div class="line">    PCALLBACKSTATUS <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>;                                   \</div>
<div class="line">    ULONG cbCBStatus;                                       \</div>
<div class="line">    DWORD retval;                                           \</div>
<div class="line">    NTSTATUS Status;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00037">37</a> 行定义.</p>

</div>
</div>
<a id="a16efcb4a62d9ae74251aa604c94fe624"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16efcb4a62d9ae74251aa604c94fe624">&#9670;&nbsp;</a></span>SETUPPWND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SETUPPWND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    api ## MSG m;                                               \</div>
<div class="line">    api ## MSG *mp = &amp;m;                                        \</div>
<div class="line">    BYTE Buffer[<a class="code" href="a00869.html#a98518084fc701cec4d02387c3becb7c0">CBBUFSIZE</a>];                                     \</div>
<div class="line">    PCALLBACKSTATUS <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>;                                       \</div>
<div class="line">    ULONG cbCBStatus;                                           \</div>
<div class="line">    DWORD retval;                                               \</div>
<div class="line">    NTSTATUS Status;                                            \</div>
<div class="line">    TL tlpwnd;                                                  \</div>
<div class="line">    CALLBACKWND cbwin;                                          \</div>
<div class="line">    PCLIENTINFO pci = <a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;<a class="code" href="a02889.html#af11214ca8a85a19dc241374ddc2d4824">pClientInfo</a>;                \</div>
<div class="line">    PWND pwndClient = pwnd ? (<a class="code" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>)((PBYTE)pwnd - pci-&gt;ulClientDelta) : NULL;</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00046">46</a> 行定义.</p>

</div>
</div>
<a id="a026af32460617f19e38afbf9524b8b5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a026af32460617f19e38afbf9524b8b5f">&#9670;&nbsp;</a></span>SMESSAGECALL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SMESSAGECALL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">api</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">LONG Sfn ## api(         \</div>
<div class="line">    <a class="code" href="a02581.html">PWND</a> pwnd,           \</div>
<div class="line">    <a class="code" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a> msg,            \</div>
<div class="line">    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> <a class="code" href="a02945.html#a7630a07d46e4a34e408cfb326d9d0648">wParam</a>,        \</div>
<div class="line">    LONG <a class="code" href="a02945.html#a5e6806726c901bac1a235d0caf8deb96">lParam</a>,         \</div>
<div class="line">    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xParam,        \</div>
<div class="line">    PROC xpfnProc,       \</div>
<div class="line">    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> dwSCMSFlags,   \</div>
<div class="line">    <a class="code" href="a02945.html">PSMS</a> psms)</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00026">26</a> 行定义.</p>

</div>
</div>
<a id="a41e3075238bb3e94e68e24a2bacb806f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41e3075238bb3e94e68e24a2bacb806f">&#9670;&nbsp;</a></span>UNLOCKPWND</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UNLOCKPWND</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>值:</b><div class="fragment"><div class="line">    pci-&gt;CallbackWnd = cbwin;       \</div>
<div class="line">    ThreadUnlock(&amp;tlpwnd);</div>
</div><!-- fragment -->
<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00133">133</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="a9d336b3234d57f09c732f44a6c766921"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d336b3234d57f09c732f44a6c766921">&#9670;&nbsp;</a></span>AllocateCallbackData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTSTATUS AllocateCallbackData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a>&#160;</td>
          <td class="paramname"><em>pcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cbData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID *&#160;</td>
          <td class="paramname"><em>ppDest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00645">645</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;{</div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    PBYTE pbBuffer;</div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160; </div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="comment">     * Allocate space from the message buffer</span></div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <span class="keywordflow">if</span> (cbData &gt; pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a>) {</div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        <span class="keywordflow">return</span> STATUS_BUFFER_OVERFLOW;</div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    }</div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160; </div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    pbBuffer = pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a>;</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = pbBuffer + ((cbData + 3) &amp; ~3);</div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160; </div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;<span class="comment">     * Fix up offsets to data.  If the data is going into a section</span></div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;<span class="comment">     * use the real pointer and don&#39;t compute offsets.</span></div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    <span class="keywordflow">if</span> (pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a>)</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;        *ppDest = pbBuffer;</div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        *ppDest = (PBYTE)(pbBuffer - (PBYTE)pcb);</div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;        ((LPDWORD)((PBYTE)pcb + pcb-&gt;<a class="code" href="a02441.html#acb07e7c85bd5311e914469982704f515">offPointers</a>))[pcb-&gt;<a class="code" href="a02441.html#a26cd1b8161c311bfb8e192fa4b94ed2e">cCapturedPointers</a>++] =</div>
<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;                (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)((PBYTE)ppDest - (PBYTE)pcb);</div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    }</div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160; </div>
<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l00246">_CAPTUREBUF::cbCapture</a>, <a class="el" href="a00365_source.html#l00247">_CAPTUREBUF::cCapturedPointers</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00365_source.html#l00249">_CAPTUREBUF::offPointers</a>, <a class="el" href="a00365_source.html#l00248">_CAPTUREBUF::pbFree</a> , 以及 <a class="el" href="a00365_source.html#l00250">_CAPTUREBUF::pvVirtualAddress</a>.</p>

</div>
</div>
<a id="a9702d294ae881a04923514d07d5ef5b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9702d294ae881a04923514d07d5ef5b9">&#9670;&nbsp;</a></span>AllocCallbackMessage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PVOID AllocCallbackMessage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cbBaseMsg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cPointers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cbCapture</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PBYTE&#160;</td>
          <td class="paramname"><em>pStackBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BOOL&#160;</td>
          <td class="paramname"><em>fInput</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00499">499</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;{</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <a class="code" href="a02441.html">PCAPTUREBUF</a> pcb;</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; </div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <span class="keywordflow">if</span> (cPointers == 0)</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="comment">     * Compute allocation sizes</span></div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    cbBaseMsg = (cbBaseMsg + 3) &amp; ~3;</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    cbBaseMsg += (cPointers * <span class="keyword">sizeof</span>(PVOID));</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    cbCapture = (cbCapture + (3 * cPointers)) &amp; ~3;</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    cbCapture = (cbCapture + 3) &amp; ~3;</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160; </div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="comment">     * If the captured data is greater than a page, place it</span></div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="comment">     * in a section.  Otherwise, put the message and the</span></div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="comment">     * data in a single block of pool</span></div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <span class="keywordflow">if</span> (cbCapture &gt; CALLBACKSTACKLIMIT) {</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        NTSTATUS Status;</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160; </div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="comment">         * Allocate the message buffer</span></div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        pcb = UserAllocPoolWithQuota(cbBaseMsg, TAG_CALLBACK);</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <span class="keywordflow">if</span> (pcb == NULL)</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;            <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160; </div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="comment">         * Allocate the virtual memory</span></div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a> = NULL;</div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        Status = ZwAllocateVirtualMemory(NtCurrentProcess(),</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;                &amp;pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a>, 0, &amp;cbCapture,</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;                MEM_COMMIT, PAGE_READWRITE);</div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        <span class="keywordflow">if</span> (!NT_SUCCESS(Status)) {</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(NT_SUCCESS(Status));</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;            UserFreePool(pcb);</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;            <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        }</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a>;</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        pcb-&gt;<a class="code" href="a02441.html#adc3e88bb82cb5804d418ed727e290e41">cbCallback</a> = cbBaseMsg;</div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160; </div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="comment">         * If the message is too big to save on the stack, allocate</span></div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;<span class="comment">         * the buffer from pool.</span></div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        <span class="keywordflow">if</span> (cbBaseMsg + cbCapture &gt; <a class="code" href="a00869.html#a98518084fc701cec4d02387c3becb7c0">CBBUFSIZE</a>) {</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;            pcb = UserAllocPoolWithQuota(cbBaseMsg + cbCapture, TAG_CALLBACK);</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;            <span class="keywordflow">if</span> (pcb == NULL)</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;                <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;            pcb = (<a class="code" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a>)pStackBuffer;</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        }</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = (PBYTE)pcb + cbBaseMsg;</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a> = NULL;</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160; </div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="comment">         * If this callback is passing data to the client, include the</span></div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="comment">         * captured data in the message.  Otherwise, only pass the message.</span></div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        <span class="keywordflow">if</span> (fInput)</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;            pcb-&gt;<a class="code" href="a02441.html#adc3e88bb82cb5804d418ed727e290e41">cbCallback</a> = cbBaseMsg + cbCapture;</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;            pcb-&gt;<a class="code" href="a02441.html#adc3e88bb82cb5804d418ed727e290e41">cbCallback</a> = cbBaseMsg;</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    }</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160; </div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="comment">     * Initialize the capture buffer</span></div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a> = cbCapture;</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#a26cd1b8161c311bfb8e192fa4b94ed2e">cCapturedPointers</a> = 0;</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#acb07e7c85bd5311e914469982704f515">offPointers</a> = cbBaseMsg - (cPointers * <span class="keyword">sizeof</span>(PVOID));</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160; </div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="keywordflow">return</span> (PVOID)pcb;</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00869_source.html#l00021">CBBUFSIZE</a>, <a class="el" href="a00365_source.html#l00245">_CAPTUREBUF::cbCallback</a>, <a class="el" href="a00365_source.html#l00246">_CAPTUREBUF::cbCapture</a>, <a class="el" href="a00365_source.html#l00247">_CAPTUREBUF::cCapturedPointers</a>, <a class="el" href="a00365_source.html#l00249">_CAPTUREBUF::offPointers</a>, <a class="el" href="a00365_source.html#l00248">_CAPTUREBUF::pbFree</a>, <a class="el" href="a00365_source.html#l00250">_CAPTUREBUF::pvVirtualAddress</a> , 以及 <a class="el" href="a00950_source.html#l00117">UserAssert</a>.</p>

</div>
</div>
<a id="a48819a7c4f5e6050e80faf68578daa41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48819a7c4f5e6050e80faf68578daa41">&#9670;&nbsp;</a></span>CaptureAnsiCallbackData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTSTATUS CaptureAnsiCallbackData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a>&#160;</td>
          <td class="paramname"><em>pcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cbData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID *&#160;</td>
          <td class="paramname"><em>ppDest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00686">686</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;{</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    PBYTE pbBuffer;</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    ULONG nCharsInAnsiString;</div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160; </div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="comment">     * If the data pointer is NULL, the out pointer will be</span></div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;<span class="comment">     * NULL</span></div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="keywordflow">if</span> (pData == NULL) {</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        *ppDest = NULL;</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;        <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    }</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; </div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="comment">     * Allocate space from the message buffer</span></div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="preprocessor">#ifdef FE_SB // CaptureAnsiCallbackData()</span></div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;<span class="comment">     * Reserve enough space for DBCS.</span></div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <span class="keywordflow">if</span> ((cbData * <span class="keyword">sizeof</span>(WORD)) &gt; pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a>) {</div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keywordflow">if</span> (cbData &gt; pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a>) {</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="preprocessor">#endif // FE_SB</span></div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <span class="keywordflow">return</span> STATUS_BUFFER_OVERFLOW;</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    }</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; </div>
<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    pbBuffer = pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a>;</div>
<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160; </div>
<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="comment">     * Convert the unicode string to ASNI</span></div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="preprocessor">#ifdef FE_SB // CaptureAnsiCallbackData()</span></div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="comment">     * Enough space for keep DBCS string.</span></div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    <span class="keywordflow">if</span> (!NT_SUCCESS(RtlUnicodeToMultiByteN(</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;                        (PCH)pbBuffer,</div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;                        cbData * <span class="keyword">sizeof</span>(WORD),</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;                        &amp;nCharsInAnsiString,</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;                        (PWCH)pData,</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;                        cbData * <span class="keyword">sizeof</span>(WCHAR)</div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                        ))) {</div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <span class="keywordflow">if</span> (!NT_SUCCESS(RtlUnicodeToMultiByteN(</div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;                        (PCH)pbBuffer,</div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;                        cbData,</div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;                        &amp;nCharsInAnsiString,</div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                        (PWCH)pData,</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;                        cbData * <span class="keyword">sizeof</span>(WCHAR)</div>
<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;                        ))) {</div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;<span class="preprocessor">#endif // FE_SB</span></div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;        <span class="keywordflow">return</span> STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    }</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160; </div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;<span class="comment">     * Translation succeeded.</span></div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;<span class="preprocessor">#ifdef FE_SB // CaptureAnsiCallbackData()</span></div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="comment">     * nCharsInAnsiString is actual bytes wriiten in message area.</span></div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = pbBuffer + ((nCharsInAnsiString + 3) &amp; ~3);</div>
<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a> -= nCharsInAnsiString;</div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = pbBuffer + ((cbData + 3) &amp; ~3);</div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a> -= cbData;</div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="preprocessor">#endif // FE_SB</span></div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160; </div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;<span class="comment">     * Fix up offsets to data.  If the data is going into a section</span></div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;<span class="comment">     * use the real pointer and don&#39;t compute offsets.</span></div>
<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <span class="keywordflow">if</span> (pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a>)</div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        *ppDest = pbBuffer;</div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        *ppDest = (PBYTE)(pbBuffer - (PBYTE)pcb);</div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        ((LPDWORD)((PBYTE)pcb + pcb-&gt;<a class="code" href="a02441.html#acb07e7c85bd5311e914469982704f515">offPointers</a>))[pcb-&gt;<a class="code" href="a02441.html#a26cd1b8161c311bfb8e192fa4b94ed2e">cCapturedPointers</a>++] =</div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;                (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)((PBYTE)ppDest - (PBYTE)pcb);</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;    }</div>
<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160; </div>
<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l00246">_CAPTUREBUF::cbCapture</a>, <a class="el" href="a00365_source.html#l00247">_CAPTUREBUF::cCapturedPointers</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00365_source.html#l00249">_CAPTUREBUF::offPointers</a>, <a class="el" href="a00365_source.html#l00248">_CAPTUREBUF::pbFree</a> , 以及 <a class="el" href="a00365_source.html#l00250">_CAPTUREBUF::pvVirtualAddress</a>.</p>

</div>
</div>
<a id="a15009c94d59d372f9f16e9066228bc6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15009c94d59d372f9f16e9066228bc6a">&#9670;&nbsp;</a></span>CaptureCallbackData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTSTATUS CaptureCallbackData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a>&#160;</td>
          <td class="paramname"><em>pcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cbData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID *&#160;</td>
          <td class="paramname"><em>ppDest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00593">593</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;{</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    PBYTE pbBuffer;</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160; </div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="comment">     * If the data pointer is NULL, the out pointer will be</span></div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="comment">     * NULL</span></div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="keywordflow">if</span> (pData == NULL) {</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        *ppDest = NULL;</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    }</div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160; </div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="comment">     * Allocate space from the message buffer</span></div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordflow">if</span> (cbData &gt; pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a>) {</div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <span class="keywordflow">return</span> STATUS_BUFFER_OVERFLOW;</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    }</div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160; </div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    pbBuffer = pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a>;</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = pbBuffer + ((cbData + 3) &amp; ~3);</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160; </div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    RtlCopyMemory(pbBuffer, pData, cbData);</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160; </div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="comment">     * Fix up offsets to data.  If the data is going into a section</span></div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="comment">     * use the real pointer and don&#39;t compute offsets.</span></div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    <span class="keywordflow">if</span> (pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a>)</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;        *ppDest = pbBuffer;</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        *ppDest = (PBYTE)(pbBuffer - (PBYTE)pcb);</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        ((LPDWORD)((PBYTE)pcb + pcb-&gt;<a class="code" href="a02441.html#acb07e7c85bd5311e914469982704f515">offPointers</a>))[pcb-&gt;<a class="code" href="a02441.html#a26cd1b8161c311bfb8e192fa4b94ed2e">cCapturedPointers</a>++] =</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;                (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)((PBYTE)ppDest - (PBYTE)pcb);</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    }</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; </div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l00246">_CAPTUREBUF::cbCapture</a>, <a class="el" href="a00365_source.html#l00247">_CAPTUREBUF::cCapturedPointers</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00365_source.html#l00249">_CAPTUREBUF::offPointers</a>, <a class="el" href="a00365_source.html#l00248">_CAPTUREBUF::pbFree</a> , 以及 <a class="el" href="a00365_source.html#l00250">_CAPTUREBUF::pvVirtualAddress</a>.</p>

</div>
</div>
<a id="ac7085763276b441eda8b04b281cc83ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7085763276b441eda8b04b281cc83ba">&#9670;&nbsp;</a></span>CaptureUnicodeCallbackData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTSTATUS CaptureUnicodeCallbackData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a>&#160;</td>
          <td class="paramname"><em>pcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>cbData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID *&#160;</td>
          <td class="paramname"><em>ppDest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00785">785</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;{</div>
<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    PBYTE pbBuffer;</div>
<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    ULONG nCharsInUnicodeString;</div>
<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; </div>
<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<span class="comment">     * If the data pointer is NULL, the out pointer will be</span></div>
<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;<span class="comment">     * NULL</span></div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    <span class="keywordflow">if</span> (pData == NULL) {</div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        *ppDest = NULL;</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    }</div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160; </div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;<span class="comment">     * Allocate space from the message buffer</span></div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    <span class="keywordflow">if</span> (cbData &gt; pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a>) {</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        <span class="keywordflow">return</span> STATUS_BUFFER_OVERFLOW;</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    }</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160; </div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    pbBuffer = pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a>;</div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; </div>
<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;<span class="comment">     * Convert the unicode string to ASNI</span></div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="keywordflow">if</span> (!NT_SUCCESS(RtlMultiByteToUnicodeN(</div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;                        (PWCH)pbBuffer,</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;                        cbData,</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;                        &amp;nCharsInUnicodeString,</div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;                        (PCH)pData,</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;                        cbData / <span class="keyword">sizeof</span>(WCHAR)</div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;                        ))) {</div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        <span class="keywordflow">return</span> STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    }</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160; </div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="comment">     * Translation succeeded.</span></div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">pbFree</a> = pbBuffer + ((cbData + 3) &amp; ~3);</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    pcb-&gt;<a class="code" href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">cbCapture</a> -= cbData;</div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160; </div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;<span class="comment">     * Fix up offsets to data.  If the data is going into a section</span></div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;<span class="comment">     * use the real pointer and don&#39;t compute offsets.</span></div>
<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="keywordflow">if</span> (pcb-&gt;<a class="code" href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">pvVirtualAddress</a>)</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;        *ppDest = pbBuffer;</div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;        *ppDest = (PBYTE)(pbBuffer - (PBYTE)pcb);</div>
<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;        ((LPDWORD)((PBYTE)pcb + pcb-&gt;<a class="code" href="a02441.html#acb07e7c85bd5311e914469982704f515">offPointers</a>))[pcb-&gt;<a class="code" href="a02441.html#a26cd1b8161c311bfb8e192fa4b94ed2e">cCapturedPointers</a>++] =</div>
<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;                (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)((PBYTE)ppDest - (PBYTE)pcb);</div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    }</div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160; </div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    <span class="keywordflow">return</span> STATUS_SUCCESS;</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l00246">_CAPTUREBUF::cbCapture</a>, <a class="el" href="a00365_source.html#l00247">_CAPTUREBUF::cCapturedPointers</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00365_source.html#l00249">_CAPTUREBUF::offPointers</a>, <a class="el" href="a00365_source.html#l00248">_CAPTUREBUF::pbFree</a> , 以及 <a class="el" href="a00365_source.html#l00250">_CAPTUREBUF::pvVirtualAddress</a>.</p>

</div>
</div>
<a id="a703c1d4772718591f4c2aff75ebcf132"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a703c1d4772718591f4c2aff75ebcf132">&#9670;&nbsp;</a></span>CopyOutputString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID CopyOutputString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a91976adce1338d5f43dcda39e283259d">PCALLBACKSTATUS</a>&#160;</td>
          <td class="paramname"><em>pcbs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#aa453bfba298bc156c84c4a04a89b4436">PLARGE_STRING</a>&#160;</td>
          <td class="paramname"><em>pstr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>&#160;</td>
          <td class="paramname"><em>cchLimit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BOOL&#160;</td>
          <td class="paramname"><em>fAnsi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00869_source.html">ssend.c</a> 第 <a class="el" href="a00869_source.html#l00864">864</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;{</div>
<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <a class="code" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a> cch;</div>
<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160; </div>
<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    ProbeForRead(<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;cbOutput,</div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;            fAnsi ? <span class="keyword">sizeof</span>(BYTE) : <span class="keyword">sizeof</span>(WORD));</div>
<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <span class="keywordflow">if</span> (!pstr-&gt;<a class="code" href="a02449.html#af4ab07640de8950ca1f439bb34be4b53">bAnsi</a>) {</div>
<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;        <span class="keywordflow">if</span> (fAnsi) {</div>
<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;            cch = MBToWCS((LPSTR)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;retval,</div>
<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;                    (LPWSTR *)&amp;pstr-&gt;<a class="code" href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">Buffer</a>, cchLimit, FALSE);</div>
<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;            <span class="keywordflow">if</span> (cch &lt; cchLimit) {</div>
<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;<span class="comment">                 * Add a null terminator and ensure an accurate pstr-&gt;Length</span></div>
<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;                ((LPWSTR)pstr-&gt;<a class="code" href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">Buffer</a>)[cch] = 0;</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;                cchLimit = cch;</div>
<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;            }</div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;            cchLimit = <a class="code" href="a00365.html#a2313d9960d832da75d595b73ff75d1dc">wcsncpycch</a>(pstr-&gt;<a class="code" href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">Buffer</a>, (LPWSTR)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, cchLimit);</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;            <span class="comment">// wcsncpy(pstr-&gt;Buffer, (LPWSTR)pcbs-&gt;pOutput, cchLimit);</span></div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        }</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        pstr-&gt;<a class="code" href="a02449.html#abfb371817eb1c8f0d8a165bb2b798092">Length</a> = cchLimit * <span class="keyword">sizeof</span>(WCHAR);</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        <span class="keywordflow">if</span> (fAnsi) {</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;            cchLimit = <a class="code" href="a00365.html#adfebdcc6d871e486d1060db7f2bcb0d4">strncpycch</a>((LPSTR)pstr-&gt;<a class="code" href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">Buffer</a>,</div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;            <span class="comment">// strncpy((LPSTR)pstr-&gt;Buffer,</span></div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;                    (LPSTR)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, cchLimit);</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;            cch = WCSToMB((LPWSTR)<a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;pOutput, <a class="code" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>-&gt;retval,</div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;                    (LPSTR *)&amp;pstr-&gt;<a class="code" href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">Buffer</a>, cchLimit, FALSE);</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;            <span class="keywordflow">if</span> (cch &lt; cchLimit) {</div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;<span class="comment">                 * Add a null terminator and ensure an accurate pstr-&gt;Length</span></div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;                ((LPSTR)pstr-&gt;<a class="code" href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">Buffer</a>)[cch] = 0;</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;                cchLimit = cch;</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;            }</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        }</div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;        pstr-&gt;<a class="code" href="a02449.html#abfb371817eb1c8f0d8a165bb2b798092">Length</a> = cchLimit;</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    }</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l00269">_LARGE_STRING::bAnsi</a>, <a class="el" href="a00365_source.html#l00270">_LARGE_STRING::Buffer</a>, <a class="el" href="a00365_source.html#l00267">_LARGE_STRING::Length</a>, <a class="el" href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a>, <a class="el" href="a03650_source.html#l00184">strncpycch()</a>, <a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT()</a> , 以及 <a class="el" href="a03650_source.html#l00146">wcsncpycch()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aa02441_html_a26cd1b8161c311bfb8e192fa4b94ed2e"><div class="ttname"><a href="a02441.html#a26cd1b8161c311bfb8e192fa4b94ed2e">_CAPTUREBUF::cCapturedPointers</a></div><div class="ttdeci">DWORD cCapturedPointers</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00247">user.h:247</a></div></div>
<div class="ttc" id="aa00869_html_a9d336b3234d57f09c732f44a6c766921"><div class="ttname"><a href="a00869.html#a9d336b3234d57f09c732f44a6c766921">AllocateCallbackData</a></div><div class="ttdeci">NTSTATUS AllocateCallbackData(PCAPTUREBUF pcb, DWORD cbData, PVOID *ppDest)</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00645">ssend.c:645</a></div></div>
<div class="ttc" id="aa00365_html_adfebdcc6d871e486d1060db7f2bcb0d4"><div class="ttname"><a href="a00365.html#adfebdcc6d871e486d1060db7f2bcb0d4">strncpycch</a></div><div class="ttdeci">DWORD strncpycch(LPSTR pszDest, LPCSTR pszSrc, DWORD cch)</div><div class="ttdef"><b>Definition:</b> <a href="a03650_source.html#l00184">rtl/random.c:184</a></div></div>
<div class="ttc" id="aa00869_html_a15009c94d59d372f9f16e9066228bc6a"><div class="ttname"><a href="a00869.html#a15009c94d59d372f9f16e9066228bc6a">CaptureCallbackData</a></div><div class="ttdeci">NTSTATUS CaptureCallbackData(PCAPTUREBUF pcb, PVOID pData, DWORD cbData, PVOID *ppDest)</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00593">ssend.c:593</a></div></div>
<div class="ttc" id="aa00563_html_a7b9b0ae15722c1f5e47208b05166acf3"><div class="ttname"><a href="a00563.html#a7b9b0ae15722c1f5e47208b05166acf3">type</a></div><div class="ttdeci">ddeml v[i&lt; inst &gt;][t&lt; type &gt;][hObj|pObj] Dump DDEML state information ddeml lists all ddeml instances for this process n ddeml t&lt; type &gt; lists all ddeml objects of the given type n type</div><div class="ttdef"><b>Definition:</b> <a href="a00563_source.html#l00068">exts.h:68</a></div></div>
<div class="ttc" id="aa00365_html_a426c6d3b3fa0c69f73b55f476602e672"><div class="ttname"><a href="a00365.html#a426c6d3b3fa0c69f73b55f476602e672">PLARGE_UNICODE_STRING</a></div><div class="ttdeci">struct _LARGE_UNICODE_STRING * PLARGE_UNICODE_STRING</div></div>
<div class="ttc" id="aa00365_html_a1a2ef1c363aa0787a8f8a7dde2a34aaf"><div class="ttname"><a href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a></div><div class="ttdeci">struct tagWND * PWND</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00059">user.h:59</a></div></div>
<div class="ttc" id="aa02945_html_a5e6806726c901bac1a235d0caf8deb96"><div class="ttname"><a href="a02945.html#a5e6806726c901bac1a235d0caf8deb96">tagSMS::lParam</a></div><div class="ttdeci">DWORD lParam</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02611">userk.h:2611</a></div></div>
<div class="ttc" id="aa00371_html_a162a73e20dfabca084a3ebb4581631a8"><div class="ttname"><a href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a></div><div class="ttdeci">#define UserAssert(exp)</div><div class="ttdef"><b>Definition:</b> <a href="a00950_source.html#l00117">usersrv.h:117</a></div></div>
<div class="ttc" id="aa00371_html_afa5f32de88404289ec03cd2c0e61e94f"><div class="ttname"><a href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a></div><div class="ttdeci">#define RIP_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00028">winerrp.h:28</a></div></div>
<div class="ttc" id="aa00869_html_a5c94257f0a9cde9586154b50ba7d3cff"><div class="ttname"><a href="a00869.html#a5c94257f0a9cde9586154b50ba7d3cff">MSGDATA</a></div><div class="ttdeci">#define MSGDATA()</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00240">ssend.c:240</a></div></div>
<div class="ttc" id="aa00008_html_a41c118328be3762ac330be19045dd3e8"><div class="ttname"><a href="a00008.html#a41c118328be3762ac330be19045dd3e8">pcbs</a></div><div class="ttdeci">#define pcbs</div></div>
<div class="ttc" id="aa00257_html_a8315d2c807ba18ba9e528c40614b6173"><div class="ttname"><a href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a></div><div class="ttdeci">PTHREADINFO PtiCurrent(VOID)</div><div class="ttdef"><b>Definition:</b> <a href="a00263_source.html#l00526">winmgrc.c:526</a></div></div>
<div class="ttc" id="aa00869_html_ac7085763276b441eda8b04b281cc83ba"><div class="ttname"><a href="a00869.html#ac7085763276b441eda8b04b281cc83ba">CaptureUnicodeCallbackData</a></div><div class="ttdeci">NTSTATUS CaptureUnicodeCallbackData(PCAPTUREBUF pcb, PVOID pData, DWORD cbData, PVOID *ppDest)</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00785">ssend.c:785</a></div></div>
<div class="ttc" id="aa02945_html"><div class="ttname"><a href="a02945.html">tagSMS</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02593">userk.h:2593</a></div></div>
<div class="ttc" id="aa02441_html_af02217b60f5486cf9e0092da8a62de0b"><div class="ttname"><a href="a02441.html#af02217b60f5486cf9e0092da8a62de0b">_CAPTUREBUF::pvVirtualAddress</a></div><div class="ttdeci">PVOID pvVirtualAddress</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00250">user.h:250</a></div></div>
<div class="ttc" id="aa02441_html_adc3e88bb82cb5804d418ed727e290e41"><div class="ttname"><a href="a02441.html#adc3e88bb82cb5804d418ed727e290e41">_CAPTUREBUF::cbCallback</a></div><div class="ttdeci">DWORD cbCallback</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00245">user.h:245</a></div></div>
<div class="ttc" id="aa02449_html_a372d153f4b52e56d80dfa3eba11db02b"><div class="ttname"><a href="a02449.html#a372d153f4b52e56d80dfa3eba11db02b">_LARGE_STRING::Buffer</a></div><div class="ttdeci">PVOID Buffer</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00270">user.h:270</a></div></div>
<div class="ttc" id="aa00899_html_abfae1dfb48db23dcea4494f7990ad6a6"><div class="ttname"><a href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a></div><div class="ttdeci">VOID ThreadLock(PVOID pobj, PTL ptl)</div></div>
<div class="ttc" id="aa02449_html_abfb371817eb1c8f0d8a165bb2b798092"><div class="ttname"><a href="a02449.html#abfb371817eb1c8f0d8a165bb2b798092">_LARGE_STRING::Length</a></div><div class="ttdeci">ULONG Length</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00267">user.h:267</a></div></div>
<div class="ttc" id="aa02889_html_af11214ca8a85a19dc241374ddc2d4824"><div class="ttname"><a href="a02889.html#af11214ca8a85a19dc241374ddc2d4824">tagTHREADINFO::pClientInfo</a></div><div class="ttdeci">PCLIENTINFO pClientInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02292">userk.h:2292</a></div></div>
<div class="ttc" id="aa00563_html_a074685e97e89d6aa2accdfcb82328699"><div class="ttname"><a href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a></div><div class="ttdeci">ddeml v[i&lt; inst &gt;][t&lt; type &gt;][hObj|pObj] Dump DDEML state information ddeml lists all ddeml instances for this process n ddeml t&lt; type &gt; lists all ddeml objects of the given type n n assumes link is first DWORD</div><div class="ttdef"><b>Definition:</b> <a href="a00563_source.html#l00175">exts.h:175</a></div></div>
<div class="ttc" id="aa00365_html_a2313d9960d832da75d595b73ff75d1dc"><div class="ttname"><a href="a00365.html#a2313d9960d832da75d595b73ff75d1dc">wcsncpycch</a></div><div class="ttdeci">DWORD wcsncpycch(LPWSTR pwsDest, LPCWSTR pwszSrc, DWORD cch)</div><div class="ttdef"><b>Definition:</b> <a href="a03650_source.html#l00146">rtl/random.c:146</a></div></div>
<div class="ttc" id="aa02581_html"><div class="ttname"><a href="a02581.html">tagWND</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01388">user.h:1388</a></div></div>
<div class="ttc" id="aa02441_html_ac5b97df8ed9ae650cb9d4a6561e745db"><div class="ttname"><a href="a02441.html#ac5b97df8ed9ae650cb9d4a6561e745db">_CAPTUREBUF::pbFree</a></div><div class="ttdeci">PBYTE pbFree</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00248">user.h:248</a></div></div>
<div class="ttc" id="aa02449_html_af4ab07640de8950ca1f439bb34be4b53"><div class="ttname"><a href="a02449.html#af4ab07640de8950ca1f439bb34be4b53">_LARGE_STRING::bAnsi</a></div><div class="ttdeci">ULONG bAnsi</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00269">user.h:269</a></div></div>
<div class="ttc" id="aa00365_html_a30bfbeae5aa9511b0d3e797511eba5a9"><div class="ttname"><a href="a00365.html#a30bfbeae5aa9511b0d3e797511eba5a9">PLARGE_ANSI_STRING</a></div><div class="ttdeci">struct _LARGE_ANSI_STRING * PLARGE_ANSI_STRING</div></div>
<div class="ttc" id="aa00869_html_a48819a7c4f5e6050e80faf68578daa41"><div class="ttname"><a href="a00869.html#a48819a7c4f5e6050e80faf68578daa41">CaptureAnsiCallbackData</a></div><div class="ttdeci">NTSTATUS CaptureAnsiCallbackData(PCAPTUREBUF pcb, PVOID pData, DWORD cbData, PVOID *ppDest)</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00686">ssend.c:686</a></div></div>
<div class="ttc" id="aa00899_html_ac2181d07596893ed44d18aa267ce4d23"><div class="ttname"><a href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a></div><div class="ttdeci">VOID LeaveCrit(VOID)</div></div>
<div class="ttc" id="aa02945_html_a7630a07d46e4a34e408cfb326d9d0648"><div class="ttname"><a href="a02945.html#a7630a07d46e4a34e408cfb326d9d0648">tagSMS::wParam</a></div><div class="ttdeci">DWORD wParam</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02610">userk.h:2610</a></div></div>
<div class="ttc" id="aa03608_html_afd1a0e78d1f88954d93e48ab3821781f"><div class="ttname"><a href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a></div><div class="ttdeci">typedef UINT(FAR WINAPI *MSGSOUNDPROC)()</div></div>
<div class="ttc" id="aa02441_html_a856d4915855ab9a78e45fc4ce573e034"><div class="ttname"><a href="a02441.html#a856d4915855ab9a78e45fc4ce573e034">_CAPTUREBUF::cbCapture</a></div><div class="ttdeci">DWORD cbCapture</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00246">user.h:246</a></div></div>
<div class="ttc" id="aa00365_html_a2bde9ad4171814e2abc155564fdc4b3c"><div class="ttname"><a href="a00365.html#a2bde9ad4171814e2abc155564fdc4b3c">PCAPTUREBUF</a></div><div class="ttdeci">struct _CAPTUREBUF * PCAPTUREBUF</div></div>
<div class="ttc" id="aa02441_html_acb07e7c85bd5311e914469982704f515"><div class="ttname"><a href="a02441.html#acb07e7c85bd5311e914469982704f515">_CAPTUREBUF::offPointers</a></div><div class="ttdeci">DWORD offPointers</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00249">user.h:249</a></div></div>
<div class="ttc" id="aa00869_html_a9702d294ae881a04923514d07d5ef5b9"><div class="ttname"><a href="a00869.html#a9702d294ae881a04923514d07d5ef5b9">AllocCallbackMessage</a></div><div class="ttdeci">PVOID AllocCallbackMessage(DWORD cbBaseMsg, DWORD cPointers, DWORD cbCapture, PBYTE pStackBuffer, BOOL fInput)</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00499">ssend.c:499</a></div></div>
<div class="ttc" id="aa00869_html_a98518084fc701cec4d02387c3becb7c0"><div class="ttname"><a href="a00869.html#a98518084fc701cec4d02387c3becb7c0">CBBUFSIZE</a></div><div class="ttdeci">#define CBBUFSIZE</div><div class="ttdef"><b>Definition:</b> <a href="a00869_source.html#l00021">ssend.c:21</a></div></div>
<div class="ttc" id="aa02441_html"><div class="ttname"><a href="a02441.html">_CAPTUREBUF</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00244">user.h:244</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_4e091ed8704426a7a4980368ba259fde.html">git</a></li><li class="navelem"><a class="el" href="dir_cd70cb5eb491250157f2d55d3ff4b13e.html">backup</a></li><li class="navelem"><a class="el" href="dir_ba2b673b566ba104b956abdc6dec0552.html">org</a></li><li class="navelem"><a class="el" href="dir_5bb0003d7907b45051943541418399f5.html">ntuser</a></li><li class="navelem"><a class="el" href="dir_2a0a56546b70a0973705719e6a88eab3.html">kernel</a></li><li class="navelem"><a class="el" href="a00869.html">ssend.c</a></li>
    <li class="footer">制作者
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
